/**
 * @anchor:zheaven
 * @em:1151828901@qq.com
 * @note:这是一个介绍操作系统和内核的类,可以使用c++或qml在Qt5.11的或更新的版本运行。
 * @version:1.0
 * @test:ubuntu_x86_64系统下测试正常。
*/


#ifndef ZSYSINFO_H
#define ZSYSINFO_H

#include <QObject>
#include <QDebug>
#include <QSysInfo>

//! asd asd
class ZSysInfo:public QObject
{
    Q_OBJECT
public:
     explicit ZSysInfo(QObject *parent=nullptr);
     ~ZSysInfo();

    //!返回此计算机启动的唯一ID（如果可以确定）。如果无法确定唯一ID，此函数将返回一个空字节数组。该值在每次引导后都会更改，可以认为是全局唯一的。此功能目前仅在Linux和Apple操作系统上实现。
    Q_INVOKABLE QByteArray boolUniqueId() const;
    //!返回cpu的架构_端性_位数
    Q_INVOKABLE QString buildAbi() const;
    //!返回构建的cpu的架构
    Q_INVOKABLE QString buildCpuArchitecture()const;
    //!返回当前的cpu的架构
    Q_INVOKABLE QString currentCpuArchitecture()const;
    //!返回内核类型
    Q_INVOKABLE QString kernelType()const;
    //!返回内核版本
    Q_INVOKABLE QString kernelVersion()const;
    //!计算机的名字
    Q_INVOKABLE QString machineHostName()const;
    //!返回此计算机启动的唯一ID（如果可以确定）。如果无法确定唯一ID，此函数将返回一个空字节数组。此值在多次开机中不会改变
    Q_INVOKABLE QByteArray machineUniqueId()const;
    //!操作系统全名
    Q_INVOKABLE QString prettyProductName()const;
    //!操作系统类型
    Q_INVOKABLE QString productType()const;
    //!操作系统版本
    Q_INVOKABLE QString productVersion()const;
};

#endif // ZSYSINFO_H
